home *** CD-ROM | disk | FTP | other *** search
- Unit MyGraph;
-
- Interface
-
- Type
- ColorValue = Record
- Rvalue,
- Gvalue,
- Bvalue : Byte;
- end;
-
- PaleteType = Array [0..255] of ColorValue;
-
- Procedure palette(tp : paleteType);
- Procedure pset(x, y : Integer; c : Byte);
- Function Point(x, y : Integer) : Byte;
- Procedure RotatePalette(Var p : PaleteType; n1, n2, d : Integer);
- Procedure SetVga;
-
- Implementation
-
- Uses
- Crt, Dos;
-
-
-
- Var
- n, x,
- y, c, i : Integer;
- ch : Char;
- p : PaleteType;
- image : File;
- ok : Boolean;
-
- Procedure palette(tp : PaleteType);
- Var
- regs : Registers;
- begin { Procedure VGApalette }
- Regs.AX := $1012;
- Regs.BX := 0; { first register to set }
- Regs.CX := 256; { number of Registers to set }
- Regs.ES := Seg(tp);
- Regs.DX := Ofs(tp);
- Intr($10, regs);
- end; { Procedure SetVGApalette }
-
- Procedure Pset(x, y : Integer; c : Byte);
- begin { Procedure PutPixel }
- mem[$A000 : Word(320 * y + x)] := c;
- end; { Procedure PutPixel }
-
- Function point(x, y : Integer) : Byte;
- begin { Function GetPixel }
- Point := mem[$A000 : Word(320 * y + x)];
- end; { Function GetPixel }
-
- Procedure rotatePalette(Var p : PaleteType; n1, n2, d : Integer);
- Var
- q : PaleteType;
- begin { Procedure rotatePalette }
- q := p;
- For i := n1 to n2 do
- p[i] := q[n1 + (i + d) mod (n2 - n1 + 1)];
- palette(p);
- end; { Procedure rotatePalette }
-
- Procedure SetVga;
- begin
- Inline($B8/$13/$00/$CD/$10);
- end;
-
- end.
-